package cn.edu.njust.mapper;

import cn.edu.njust.pojo.po.Leaves;
import cn.edu.njust.pojo.po.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface LeaveMapper {


    /**
     * 添加学生请假信息
     *
     * @param leaves 请求信息
     */
    void addLeave(Leaves leaves);

    /**
     * 查询请假信息
     *
     * @return 请假信息
     */
    List<User> selectLeaves();

    /**
     * 分页查询请假信息
     *
     * @param pageNum    起始位置
     * @param pageSize   页面大小
     * @param statusList 请假状态
     * @return 请假信息
     * @since 3.0.0
     */
    List<Leaves> pageQueryList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize,
                               @Param("statusList") List<String> statusList);

    /**
     * 查询总数
     *
     * @param statusList 请假状态
     * @return 总数
     */
    int selectTotalCount(@Param("statusList") List<String> statusList);

    /**
     * 根据学号删除对应的请假学生
     *
     * @param stuNo 学号
     */
    void deleteByStuNo(String stuNo);
}
